package com.rc.saas.tenant.service.recharge;


import com.github.pagehelper.PageInfo;
import com.rc.saas.tenant.base.BaseService;
import com.rc.saas.tenant.mapper.recharge.RechargeOrderMapper;
import com.rc.saas.tenant.model.recharge.RechargeOrder;
import com.rc.saas.tenant.model.recharge.RechargeOrderExample;
import com.rc.saas.tenant.search.recharge.RechargeOrderSearch;
import com.rc.saas.tenant.vo.order.ChargeStatisticsResult;
import com.rc.saas.tenant.vo.recharge.ExportRechargeOrderVo;
import com.rc.saas.tenant.vo.recharge.RechargeOrderExportVo;
import com.rc.saas.tenant.vo.recharge.RechargeOrderResultVo;
import com.rc.saas.tenant.vo.recharge.RechargeOrderStatisticsVo;

import java.util.List;

public interface RechargeOrderService extends BaseService<Long, RechargeOrder, RechargeOrderExample, RechargeOrderMapper> {

    PageInfo<RechargeOrderResultVo> searchByCondition(RechargeOrderSearch rechargeOrderSearch);

    List<ExportRechargeOrderVo> exportRechargeOrder(RechargeOrderSearch rechargeOrderSearch);

    PageInfo<RechargeOrderResultVo> listPageRechargeOrderDetail(RechargeOrderSearch rechargeOrderSearch);

    RechargeOrderStatisticsVo selectRechargeOrderStatistics(RechargeOrderSearch rechargeOrderSearch);

    List<RechargeOrderExportVo> rechargeOrderExport(RechargeOrderSearch rechargeOrderSearch);

    List<ChargeStatisticsResult> listRechargeStatistics(List<Long> idList);

    RechargeOrder selectByRechargeOrderNum(String orderNum);
}
